package WanWJ.IfPractice;

import java.util.Scanner;

/**
 * @author Xiao
 * @date 2021/7/12
 */
public class IfTest04 {
    /**
     * 需求：
     * 某商场购物可以打折，具体规则如下：
     * 	    普通顾客购不满100元不打折，满100元打9折；
     *  	会员购物不满200元打8折，满200元打7.5折；
     * 	    不同打折规则不累加计算。
     * 请根据此优惠计划进行购物结算，键盘录入顾客的类别（0表示普通顾客，1表示会员）和购物的折前金额（整数即可），输出应付金额（小数类型）。
     */
    public static void main(String[] args) {
        System.out.println("------欢迎来到阿良的购物商场！------");
        System.out.println("本商场当前有折扣活动，活动规则如下：");
        System.out.println("通顾客购不满100元不打折，满100元打9折；");
        System.out.println("会员购物不满200元打8折，满200元打7.5折；");
        System.out.println("不同打折规则不累加计算。");
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入顾客类型(0.普通顾客  1.会员顾客)：");
        int choice = getChoice(sc);     //判断顾客是不是会员，0不是，1不是
        int money = getMoney(sc);       //输入顾客折前金额，金额必须大于0
        double sum = getSum(choice, money);       //获取结算金额
        System.out.println("您本次共需消费：" + sum + "元。");
        System.out.println("---------欢迎再次光临！----------");

    }

    public static int getMoney(Scanner sc) {

        while (true) {
            System.out.println("请输入购物折前金额(元)：");
            int money = sc.nextInt();
            if (money > 0) {
                return money;
            }
            System.out.println("您输入的金额有误，请重新输入。");
        }
    }

    public static double getSum(int choice, int money) {
        double sum = 0;
        switch (choice) {
            //普通顾客购不满100元不打折，满100元打9折；
            case 0:
                if (money < 100) {
                    sum = money;
                } else {
                    sum = money * 0.9;
                }
                break;
            //会员购物不满200元打8折，满200元打7.5折；
            case 1:
                if (money < 200) {
                    sum = money * 0.8;
                } else {
                    sum = money * 0.75;
                }
                break;
        }
        return sum;
    }

    public static int getChoice(Scanner sc) {
        while (true) {
            int choice = sc.nextInt();
            if (choice >= 0 && choice <= 1) {
                return choice;
            }
            System.out.println("您输入的选项有误，请重新输入:");
        }
    }
}
